package com.xcl.service;

import com.xcl.pojo.Loading;
import com.xcl.pojo.Vehicle;
import com.zzg.entity.Driver;
import com.zzg.entity.TmsRegion;
import com.zzg.entity.Transportprotocol;

import java.util.List;

/**
 * @ClassName LoadingServiceInter
 * @Description 装车配载服务层接口类
 * @Author: xiaochaolei
 * @date 2021/6/28 11:08
 * @Version 1. 0
 */
public interface LoadingServiceInter {
    /**
     * 得到未分配的运单和货物信息
     * @return 运单和货物信息集合
     */
    public List<Loading> getLoadingBYStateOne();

    /**
     * 分页查询未分配的运单和货物信息
     * @param page 页码数
     * @param limit 条码数
     * @return 运单和货物信息集合
     */
    public List<Loading> getLoadingBYStateOneLimit(int page,int limit);

    /**
     * 得到运输中的运单和货运信息
     * @return  运单和货物信息集合
     */
    public List<Loading> getLoadingBYStateTwo();



    /**
     * 分页查询未分配的运单和货物信息
     * @param page 页码数
     * @param limit 条码数
     * @return 运单和货物信息集合
     */
    public List<Loading> getLoadingBYStateTwoLimit(int page,int limit);




    /**
     * 得到装配中的运单和货物信息
     * @return 运单和货物信息集合
     */
    public List<Loading> getLoadingBYStateThree();





    /**
     * 分页查询未分配的运单和货物信息
     * @param page 页码数
     * @param limit 条码数
     * @return 运单和货物信息集合
     */
    public List<Loading> getLoadingBYStateThreeLimit(int page,int limit);

    /**
     * 新增协议信息
     * @param transportprotocol 协议信息
     * @return 影响行数
     */
    public int insertTransportprotocol(Transportprotocol transportprotocol);


    /**
     * 新增车辆信息和协议信息
     * @param driver 车辆信息
     * @param transportprotocol 协议信息
     * @return 影响行数
     */
    public int insertDriver(Driver driver,Transportprotocol transportprotocol);

    /**
     * 新增地区
     * @param tmsRegion 地区信息
     * @return 影响的行数
     */
    public int insertTmsRegion(TmsRegion tmsRegion);


    /**
     * 地区是否存在
     * @param area 地区信息
     * @return 是否存在
     */
    public TmsRegion isExistConsignerArea(String area);




    /**
     * 多条件查询得到装车配载集合
     * @param waybill_id 运单号
     * @param substationUnit 到达分站
     * @param modeTransport 运输方式
     * @param startDate 起始日期
     * @param endingDate 结束日期
     * @return  装车配载集合
     */
    public List<Loading> getLoadingByWhere(String waybill_id
            ,String substationUnit
            ,String modeTransport
            ,String startDate
            ,String endingDate
            ,int page
            ,int limit);

    /**
     * 多条件查询得到装车配载运输中集合
     * @param waybill_id 运单号
     * @param modeTransport 运输方式
     * @param page 页码数
     * @param limit 条目数
     * @return 装车配载运输中集合
     */
    public List<Loading> getLoadingByWhereTwo(String waybill_id,String modeTransport,int page,int limit);


    /**
     * 多条修改
     * @param strings 数据集合
     * @return 影响行数
     */
    public int upteModificationOne(String[] strings);




    /**
     * 修改为配载中
     * @param strings 数组
     * @return 影响行数
     */
    public int upteModificationTwo(String[] strings);


    /**
     * 修改为为装配
     * @param strings 数组
     * @return 影响行数
     */
    public int upteModificationThree(String[] strings);




    /**
     * 修改状态为运输中
     * @param id 需要修改的id
     * @return 影响的行数
     */
    public int upteModification(String id);


    /**
     * 得到所有的司机名称
     * @return 车辆集合
     */
    public List<String> getOwnerNameByDriver();


    /**
     * 根据id查询车辆信息
     * @param id 车辆id
     * @return 车辆信息
     */
    public Vehicle getDriverByDriverId(String id);

}
